<?php
/**
 * 后台管理重定向测试脚本
 * 用于验证UserController中的重定向功能是否正常工作
 */

// 定义必要的常量
define('DS', DIRECTORY_SEPARATOR);
define('ROOT_PATH', getcwd());
define('APP_PATH', ROOT_PATH . DS . 'Admin' . DS);

// 加载自动加载器
require_once ROOT_PATH . DS . 'vendor' . DS . 'autoload.php';

// 模拟UserController的redirect方法
function testRedirect($url) {
    // 检查URL是否已经包含完整域名
    if(strpos($url, 'http://') === false && strpos($url, 'https://') === false){
        // 补充完整域名前缀
        $url = 'http://localhost:63342' . $url;
    }
    return $url;
}

// 获取测试URL列表
$testUrls = [
    '用户管理页面' => '/admin.php?c=User&a=user_manage',
    '新建用户' => '/admin.php?c=User&a=update',
    '编辑用户' => '/admin.php?c=User&a=update&id=1',
    '禁用用户' => '/admin.php?c=User&a=changeStatus&id=1&status=disable',
    '启用用户' => '/admin.php?c=User&a=changeStatus&id=1&status=active',
    '删除用户' => '/admin.php?c=User&a=deleteUser&id=1',
    '批量删除' => '/admin.php?c=User&a=batchDelete&ids=1,2,3',
    '搜索用户' => '/admin.php?c=User&a=search&keyword=admin'
];

// 生成测试结果
$testResults = [];
foreach($testUrls as $name => $url) {
    $testResults[$name] = [
        'original' => $url,
        'converted' => testRedirect($url)
    ];
}

?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>后台管理重定向测试</title>
    <style>
        body { font-family: 'Microsoft YaHei', Arial, sans-serif; margin: 20px; }
        h1 { color: #333; margin-bottom: 20px; }
        .test-container { max-width: 800px; margin: 0 auto; }
        .test-section { margin-bottom: 30px; }
        .test-result { margin-bottom: 15px; padding: 10px; border: 1px solid #ddd; border-radius: 4px; }
        .test-name { font-weight: bold; color: #667eea; margin-bottom: 5px; }
        .test-url { font-family: monospace; font-size: 14px; margin-bottom: 5px; word-break: break-all; }
        .btn { display: inline-block; padding: 8px 16px; margin-right: 10px; margin-bottom: 10px; 
                background: #667eea; color: white; border: none; border-radius: 4px; 
                text-decoration: none; cursor: pointer; transition: all 0.3s ease; }
        .btn:hover { background: #5a6fd8; }
        .btn-warning { background: #ffbc00; }
        .btn-warning:hover { background: #e6ac00; }
        .btn-danger { background: #ff4757; }
        .btn-danger:hover { background: #ff3742; }
        .explanation { background: #f8f9fa; padding: 15px; border-radius: 4px; 
                      margin-top: 30px; border-left: 4px solid #667eea; }
    </style>
</head>
<body>
    <div class="test-container">
        <h1>后台管理重定向测试</h1>
        
        <div class="test-section">
            <h2>测试按钮 - 点击以下按钮测试后台功能</h2>
            <p>请在不同浏览器中测试这些链接是否能正常工作：</p>
            
            <a href="http://localhost:63342/admin.php?c=User&a=user_manage" class="btn">访问用户管理页面</a>
            <a href="http://localhost:63342/admin.php?c=User&a=update" class="btn btn-warning">新建用户</a>
            <a href="http://localhost:63342/admin.php?c=User&a=update&id=1" class="btn">编辑用户</a>
            <a href="http://localhost:63342/admin.php?c=User&a=search&keyword=admin" class="btn">搜索用户</a>
        </div>
        
        <div class="test-section">
            <h2>重定向URL转换测试结果</h2>
            <p>以下是URL在重定向方法中的转换结果：</p>
            
            <?php foreach($testResults as $name => $result): ?>
                <div class="test-result">
                    <div class="test-name">✓ <?php echo $name; ?></div>
                    <div class="test-url">原始URL: <?php echo $result['original']; ?></div>
                    <div class="test-url">转换后: <?php echo $result['converted']; ?></div>
                </div>
            <?php endforeach; ?>
        </div>
        
        <div class="explanation">
            <h3>问题分析与解决方案</h3>
            <p><strong>问题原因：</strong>后台管理界面的功能按钮在不同浏览器中表现不一致，主要是因为UserController中的redirect方法使用了相对URL路径。</p>
            <p><strong>修复方案：</strong>已更新UserController中的redirect方法，确保所有重定向都使用绝对URL路径（http://localhost:63342/...）。</p>
            <p><strong>验证方法：</strong>请清除浏览器缓存后，在不同浏览器中测试上面的按钮是否能正常工作。如果问题仍然存在，请尝试运行clear_all_cache.php脚本清理所有缓存。</p>
        </div>
    </div>
</body>
</html>